package com.laolang.pluto.common.logic;

import com.github.pagehelper.PageInfo;
import com.laolang.pluto.common.core.domain.common.Page;
import java.util.function.Function;

/**
 * @author laolang
 * @date 2021-07-2021/7/31 18:58
 */
public interface BaseLogic {

    /**
     * 转换 {@link PageInfo} 为 {@link Page}
     *
     * @param pageInfo {@link PageInfo} 对象
     * @param <T>      分页信息对象
     * @return 分页结果
     */
    <T> Page<T> pageInfo2Page(PageInfo<T> pageInfo);

    /**
     * 转换 {@link PageInfo} 为 {@link Page}
     *
     * @param pageInfo {@link PageInfo} 对象
     * @param tranform T->R 转换函数
     * @param <T>      原始分页信息对象
     * @param <R>      分页信息对象VO
     * @return 分页结果
     */
    <T, R> Page<R> pageInfo2Page(PageInfo<T> pageInfo, Function<T, R> tranform);
}
